Итак, мы поступим просто. Если в базе данных нет таблицы тот ее просто и тихо нужно создать нечего не говоря пользователю. А зачем ему знать о наших проблемах? Раз должна быть она значит должна. А в Access она вот какая.

Опять все будет то же самое. Попытка открыть, нет таблицы, создать. Определим имя таблицы.
......
#endif // _AFX_NO_AFXCMN_SUPPORT
#define DATABASENAME "biblio"
#define TABLE_NAME_AUTHOR "Авторы"
//{{AFX_INSERT_LOCATION}}
......
Идем в OnInitDialog класса CDialogAuthor.
BOOL CDialogAuthor::OnInitDialog()
{
CDialog::OnInitDialog();
CDaoDatabase db;
db.Open(DATABASENAME); // Открывает DB
CDaoTableDef cTable(&db);
try
{
cTable.Open(TABLE_NAME_AUTHOR); // попытка открытия таблицы
}
catch(...)
{ // нет ее
try
{
cTable.Create(TABLE_NAME_AUTHOR); // создать
CDaoFieldInfo ci;
cTable.CreateField("КодАвтора",dbLong,0,dbAutoIncrField);
cTable.CreateField("Имя",dbText,255);
cTable.CreateField("Фамилия",dbText,255);
cTable.CreateField("Заметки",dbMemo,0);
cTable.Append();
}
catch(...)
{
return FALSE;
}
}
cTable.Close(); // все закрыть
db.Close();
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
Достаточно один раз открыть форму что бы таблица появилась в базе данных. Именно этом мы и сделаем. Запустите и откройте форму Авторы. Как результат в таблице она будет. Это нам пригодится для следующего шага.